iT邦幫忙

2021 iThome 鐵人賽

DAY 16
1

今天是講座筆記,內容來自 PHP也有Day #60 composer & vite ,建議大家有時間可以看看精彩的原影片。
講座裡也有提到比較進階的內容=>如何解決套件衝突,就請有需要的人去看原影片了。
如果內容有誤,希望大大路過不吝留言指教 >"<

講座的主題之一是 Composer 的誕生前後。

問題

所有的工具出現都是為了解決問題,Composer 出現以前,開發者在管理套件相依有很大的困擾。

過去沒有在分 public,都是直接寫依照 URL 對應到各個 PHP 檔案。
要使用套件的時候就會去下載(GitHub, zip...)回來,放在 libs 裡面,再用路徑引入。

https://ithelp.ithome.com.tw/upload/images/20211001/20139745u7IxK90Khx.png

套件相依會產生 include 地獄,include 地獄主要這樣的情境:

  1. 不知道套件有跟什麼套件相依,如果對方沒有寫得很清楚,new 下去就壞掉了,壞了就去找來 include。
  2. 專案裡的套件相依,的套件如果有版本更新,又要再檢查套件相依問題。

https://ithelp.ithome.com.tw/upload/images/20211001/201397456tyKzq5Sfe.png

如何解決套件相依

想要標準化!

PHP-FIG 出現
=> 制定 PSR
=> 套件儲存庫(packagist)誕生, 套件管理工具(composer)誕生
=> 完成 PHP 生態系

PHP-FIG 是

  • 「道德倫理委員會」
  • 這個組織制定了 PHP 規範

PSR 是

composer 是

  • PHP 的套件相依管理工具

composer 解決的問題是

  • 標準化開發與散布
  • 以專案為單位管裡相依套件(dependency)
  • PEAR 是以一台機器為單位
  • 彈性自動載入 PSR4
  • 彈性的套件儲存庫 packagist 來源公開套件/私人套件
  • 標準的自動化套件

composer 的優點是

  • 標準化
  • 自動化

延伸閱讀


上一篇
15. Error x Exception x Bug Trackers
下一篇
17. PHPer x Code Quality Tool
系列文
每天一篇文章30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言